From ff1df1c71ca97e7023062e1929f927f2a0be38e6 Mon Sep 17 00:00:00 2001 From: robertl Date: Wed, 6 May 2009 02:10:29 +0000 Subject: [PATCH] Per Borgentun adds support for Holux GPSport 245 (a.k.a. GR-245). --- gpsbabel/mtk_logger.c | 159 +- gpsbabel/reference/track/mtk_logger_gp245.bin | Bin 0 -> 10240 bytes gpsbabel/reference/track/mtk_logger_gp245.gpx | 2386 +++++++++++++++++ gpsbabel/testo | 7 + gpsbabel/xmldoc/formats/m241-bin.xml | 6 + gpsbabel/xmldoc/formats/m241.xml | 6 + 6 files changed, 2519 insertions(+), 45 deletions(-) create mode 100644 gpsbabel/reference/track/mtk_logger_gp245.bin create mode 100644 gpsbabel/reference/track/mtk_logger_gp245.gpx diff --git a/gpsbabel/mtk_logger.c b/gpsbabel/mtk_logger.c index 4d333f25e..d0a77ba37 100644 --- a/gpsbabel/mtk_logger.c +++ b/gpsbabel/mtk_logger.c @@ -34,8 +34,11 @@ For info about the used log format: - Example usage:: - + Module updated 2008-2009. Now also handles Holux M-241 and + Holux GR-245 aka. GPSport-245 devices. These devices have small differences + in the log format and use a lower baudrate to transfer the data. + + Example usage:: # Read from USB port, output trackpoints & waypoints in GPX format ./gpsbabel -D 2 -t -w -i mtk -f /dev/ttyUSB0 -o gpx -F out.gpx @@ -43,6 +46,7 @@ # both CSV file and GPX, discard points without fix ./gpsbabel -D 2 -t -i mtk-bin,csv=data__2007_09_04.csv -f data_2007_09_04.bin -x discard,fixnone -o gpx -F out.gpx + Tip: Check out the -x height,wgs84tomsl filter to correct the altitude. Todo: o .... @@ -194,16 +198,25 @@ struct mtk_loginfo { /* *************************************** */ +/* MTK chip based devices with different baudrate, tweaks, ... */ +enum MTK_DEVICE_TYPE { + MTK_LOGGER, + HOLUX_M241, + HOLUX_GR245 +}; + #define TIMEOUT 1500 #define MTK_BAUDRATE 115200 #define MTK_BAUDRATE_M241 38400 +#define HOLUX245_MASK (1 << 27) + static void *fd; /* serial fd */ static FILE *fl; /* bin.file fd */ static char *port; /* serial port name */ static char *erase; /* erase ? command option */ static char *csv_file; /* csv ? command option */ -static int is_m241=0; +static enum MTK_DEVICE_TYPE mtk_device = MTK_LOGGER; struct mtk_loginfo mtk_info; @@ -225,7 +238,7 @@ static void file_read(void); static int mtk_parse_info(const unsigned char *data, int dataLen); -// Arguments for logg fetch 'mtk' command.. +// Arguments for log fetch 'mtk' command.. static arglist_t mtk_sargs[] = { { "erase", &erase, "Erase device data after download", @@ -276,8 +289,8 @@ static int do_cmd(const char *cmd, const char *expect, char **rslt, time_t timeo cmd_erase = 0; if ( strncmp(cmd, CMD_LOG_ERASE, 12) == 0 ){ cmd_erase = 1; - if (global_opts.debug_level > 0 ) { - dbg(1, "Erasing "); + if (global_opts.verbose_status || global_opts.debug_level > 0) { + fprintf(stderr, "Erasing "); } } // dbg(6, "## Send '%s' -- Expect '%s' in %d sec\n", cmd, expect, timeout_sec); @@ -302,13 +315,13 @@ static int do_cmd(const char *cmd, const char *expect, char **rslt, time_t timeo } loops++; dbg(8, "Read %d bytes: '%s'\n", len, line); - if ( cmd_erase && global_opts.debug_level > 0 && global_opts.debug_level <= 3 ){ + if ( cmd_erase && (global_opts.verbose_status || (global_opts.debug_level > 0 && global_opts.debug_level <= 3)) ){ // erase cmd progress wheel -- only for debug level 1-3 fprintf(stderr,"\b%c", LIVE_CHAR[loops%4]); fflush(stderr); } if ( len > 5 && line[0] == '$' ){ if ( expect_len > 0 && strncmp(&line[1], expect, expect_len) == 0 ){ - if ( cmd_erase && global_opts.debug_level > 0 ) fprintf(stderr,"\n"); + if ( cmd_erase && (global_opts.verbose_status || global_opts.debug_level > 0) ) fprintf(stderr,"\n"); dbg(6, "NMEA command success !\n"); if ( (len - 4) > expect_len ){ // alloc and copy data segment... if ( line[len-3] == '*' ) @@ -352,7 +365,7 @@ static int do_cmd(const char *cmd, const char *expect, char **rslt, time_t timeo * %%% global callbacks called by gpsbabel main process %%% * *******************************************************************************/ static void mtk_rd_init_m241 (const char *fname) { - is_m241 = 1; + mtk_device = HOLUX_M241; mtk_rd_init(fname); } @@ -369,13 +382,18 @@ static void mtk_rd_init(const char *fname){ // verify that we have a MTK based logger... dbg(1, "Verifying MTK based device...\n"); - if ( is_m241 ) { - log_type[LATITUDE].size = log_type[LONGITUDE].size = 4; - log_type[HEIGHT].size = 3; - rc = gbser_set_port(fd, MTK_BAUDRATE_M241, 8, 0, 1); - } else { - rc = gbser_set_port(fd, MTK_BAUDRATE, 8, 0, 1); - } + switch ( mtk_device ){ + case HOLUX_M241: + case HOLUX_GR245: + log_type[LATITUDE].size = log_type[LONGITUDE].size = 4; + log_type[HEIGHT].size = 3; + rc = gbser_set_port(fd, MTK_BAUDRATE_M241, 8, 0, 1); + break; + case MTK_LOGGER: + default: + rc = gbser_set_port(fd, MTK_BAUDRATE, 8, 0, 1); + break; + } if (rc) { dbg(1, "Set baud rate to %d failed (%d)\n", MTK_BAUDRATE, rc); fatal(MYNAME ": Failed to set baudrate !\n"); @@ -383,7 +401,7 @@ static void mtk_rd_init(const char *fname){ rc = do_cmd("$PMTK605*31\r\n", "PMTK705", NULL, 10); if ( rc != 0 ) - fatal(MYNAME ": This is not a MTK based GPS ! (or is it turned off ?)\n"); + fatal(MYNAME ": This is not a MTK based GPS ! (or is device turned off ?)\n"); } @@ -479,6 +497,8 @@ static void mtk_read(void){ addr_max = 0x200000-64*1024; // 16Mbit/2Mbyte/32x64kByte block. -- fixme Q1000-ng has 32Mbit init_scan = 1; } + dbg(1, "Download %dkB from device\n", (addr_max+1) >> 10); + bsize = 0x0400; addr = 0x0000; @@ -563,17 +583,20 @@ mtk_retry: addr = 0x0000; } } else { - int perc; addr += bsize; - perc = 100 - 100*(addr_max-addr)/addr_max; - if ( addr >= addr_max ) - perc = 100; - dbg(2, "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bReading 0x%.6x %3d %%", addr, perc); + if ( global_opts.verbose_status || global_opts.debug_level >= 2 ){ + int perc; + perc = 100 - 100*(addr_max-addr)/addr_max; + if ( addr >= addr_max ) + perc = 100; + fprintf(stderr, "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bReading 0x%.6x %3d %%", addr, perc); + } } } if ( dout != NULL ) fclose(dout); - dbg(2, "\n"); + if ( global_opts.verbose_status || global_opts.debug_level >= 2 ) + fprintf(stderr,"\n"); if ( log_enabled ){ i = do_cmd(CMD_LOG_ENABLE, "PMTK001,182,4,3", NULL, 2); @@ -854,8 +877,8 @@ static int csv_line(gbfile *csvFile, int idx, unsigned long bmask, struct data_i /********************* MTK Logger -- Parse functions *********************/ int mtk_parse(unsigned char *data, int dataLen, unsigned int bmask){ static int count = 0; - int i, k, sat_id; - unsigned char crc; + int i, k, sat_id, hspd; + unsigned char crc, hbuf[4]; struct data_item itm; dbg(5,"Entering mtk_parse, count = %i, dataLen = %i\n", count, dataLen); @@ -894,19 +917,34 @@ int mtk_parse(unsigned char *data, int dataLen, unsigned int bmask){ } break; case 1< %.8x ###########\n", mtk_info.bitmask, bm); @@ -1108,6 +1150,8 @@ static int mtk_log_len(unsigned int bitmask){ len = 2; // add '*' + crc, holux would only be +1, oh, well... for (i=0;i<32;i++){ if ( (1< DISTANCE ) + fprintf(stderr, "WARNING: Unknown size/meaning of bit %d\n", i); if ( (i == SID || i == ELEVATION || i == AZIMUTH || i == SNR) && (1<= 5 && data[0] == (0xff & 'H') && data[1] == (0xff & 'O') && @@ -1190,10 +1250,15 @@ static void file_read(void) { unsigned int mask, log_period, log_distance, log_speed; mask = le_read32(buf + 2); - if ( is_m241 ) { - // clear Holux-specific 'low precision' bit + if ( mtk_device != MTK_LOGGER ) { // clear Holux-specific 'low precision' bit mask &= 0x7fffffffU; } + if ( mask & HOLUX245_MASK ){ + // Holux245 semibroken device.. + mtk_device = HOLUX_GR245; + holux245_init(); + mask &= ~HOLUX245_MASK; + } // log_policy = le_read16(buf + 6); log_period = le_read32(buf + 8); @@ -1223,6 +1288,7 @@ static void file_read(void) { pos += j; } else if ( is_holux_string(buf, bLen) ) { pos += j; + // Note -- Holux245 will have here...handled below.. } } while ( j == 16 ); j = bLen; @@ -1245,6 +1311,9 @@ static void file_read(void) { k = 16; } else if ( is_holux_string(&buf[i], (bLen - i)) ) { k = 16; + // HOLUXGR245LOGGER or HOLUXGR245WAYPNT + if ( memcmp(&buf[i+16], " ", 4) == 0 ) // Assume loglen >= 20... + k += 4; } else if ( buf[i] == 0xff && buf[i+1] == 0xff && buf[i+2] == 0xff && buf[i+3] == 0xff /* && (pos + 2*logLen) & 0xffff) < logLen */) { diff --git a/gpsbabel/reference/track/mtk_logger_gp245.bin b/gpsbabel/reference/track/mtk_logger_gp245.bin new file mode 100644 index 0000000000000000000000000000000000000000..4d1a236cf62f68643defea52b0ae5fa4e03328b1 GIT binary patch literal 10240 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 + + + + + track-1 + Log every 5 sec, 0 m + + + 206.972656 + + 0.500000 + TP000001 + + + 206.777344 + + 0.630000 + TP000002 + + + 200.152344 + + 0.550000 + TP000003 + + + 201.367188 + + 0.880000 + TP000004 + + + 201.015625 + + 0.350000 + TP000005 + + + 199.902344 + + 0.310000 + TP000006 + + + 199.675781 + + 0.630000 + TP000007 + + + 199.496094 + + 0.480000 + TP000008 + + + 198.941406 + + 0.650000 + TP000009 + + + 198.429688 + + 0.990000 + TP000010 + + + 197.875000 + + 0.950000 + TP000011 + + + 197.332031 + + 0.720000 + TP000012 + + + 197.203125 + + 1.160000 + TP000013 + + + 198.152344 + + 1.300000 + TP000014 + + + 198.941406 + + 1.620000 + TP000015 + + + 200.500000 + + 0.190000 + TP000016 + + + 197.238281 + + 0.330000 + TP000017 + + + 196.753906 + + 0.080000 + TP000018 + + + 198.253906 + + 0.080000 + TP000019 + + + 198.441406 + + 0.110000 + TP000020 + + + 199.019531 + + 1.230000 + TP000021 + + + 199.304688 + + 0.620000 + TP000022 + + + 199.671875 + + 0.440000 + TP000023 + + + 199.648438 + + 0.030000 + TP000024 + + + 199.917969 + + 0.250000 + TP000025 + + + 199.859375 + + 0.410000 + TP000026 + + + 200.804688 + + 1.250000 + TP000027 + + + 203.246094 + + 1.060000 + TP000028 + + + 206.292969 + + 1.920000 + TP000029 + + + 207.605469 + + 1.700000 + TP000030 + + + 208.625000 + + 1.950000 + TP000031 + + + 208.515625 + + 1.720000 + TP000032 + + + 209.500000 + + 1.580000 + TP000033 + + + 209.894531 + + 0.430000 + TP000034 + + + 209.445312 + + 0.860000 + TP000035 + + + 209.082031 + + 0.090000 + TP000036 + + + 209.031250 + + 1.200000 + TP000037 + + + 209.343750 + + 0.380000 + TP000038 + + + 210.605469 + + 0.060000 + TP000039 + + + 210.691406 + + 0.240000 + TP000040 + + + 211.253906 + + 1.580000 + TP000041 + + + 211.210938 + + 1.320000 + TP000042 + + + 211.453125 + + 1.680000 + TP000043 + + + 211.824219 + + 0.980000 + TP000044 + + + 209.632812 + + 1.410000 + TP000045 + + + 210.554688 + + 1.030000 + TP000046 + + + 211.109375 + + 1.370000 + TP000047 + + + 212.457031 + + 1.350000 + TP000048 + + + 213.007812 + + 0.770000 + TP000049 + + + 213.601562 + + 0.850000 + TP000050 + + + 213.433594 + + 0.610000 + TP000051 + + + 214.265625 + + 0.780000 + TP000052 + + + 213.882812 + + 1.460000 + TP000053 + + + 213.640625 + + 0.910000 + TP000054 + + + 213.996094 + + 1.340000 + TP000055 + + + 214.589844 + + 1.040000 + TP000056 + + + 215.617188 + + 1.390000 + TP000057 + + + 214.773438 + + 1.920000 + TP000058 + + + 215.730469 + + 1.710000 + TP000059 + + + 214.050781 + + 1.200000 + TP000060 + + + 212.535156 + + 1.200000 + TP000061 + + + 210.179688 + + 1.220000 + TP000062 + + + 209.921875 + + 1.210000 + TP000063 + + + 209.136719 + + 1.350000 + TP000064 + + + 209.824219 + + 1.240000 + TP000065 + + + 210.093750 + + 1.210000 + TP000066 + + + 209.398438 + + 1.670000 + TP000067 + + + 208.734375 + + 1.220000 + TP000068 + + + 208.007812 + + 1.300000 + TP000069 + + + 208.171875 + + 0.550000 + TP000070 + + + 208.125000 + + 0.930000 + TP000071 + + + 208.562500 + + 1.100000 + TP000072 + + + 207.019531 + + 1.300000 + TP000073 + + + 204.921875 + + 1.150000 + TP000074 + + + 203.007812 + + 1.200000 + TP000075 + + + 203.625000 + + 1.450000 + TP000076 + + + 203.773438 + + 1.210000 + TP000077 + + + 203.812500 + + 1.090000 + TP000078 + + + 203.035156 + + 1.370000 + TP000079 + + + 203.398438 + + 1.240000 + TP000080 + + + 203.550781 + + 1.170000 + TP000081 + + + 204.933594 + + 1.420000 + TP000082 + + + 207.300781 + + 0.740000 + TP000083 + + + 206.976562 + + 1.290000 + TP000084 + + + 204.605469 + + 1.010000 + TP000085 + + + 203.269531 + + 0.720000 + TP000086 + + + 201.246094 + + 0.940000 + TP000087 + + + 200.832031 + + 0.770000 + TP000088 + + + 200.714844 + + 1.410000 + TP000089 + + + 201.203125 + + 1.270000 + TP000090 + + + 201.179688 + + 0.830000 + TP000091 + + + 202.355469 + + 1.350000 + TP000092 + + + 201.531250 + + 1.060000 + TP000093 + + + 202.175781 + + 1.350000 + TP000094 + + + 202.371094 + + 1.070000 + TP000095 + + + 201.835938 + + 1.260000 + TP000096 + + + 202.019531 + + 0.430000 + TP000097 + + + 202.957031 + + 0.000000 + TP000098 + + + 203.023438 + + 0.030000 + TP000099 + + + 202.457031 + + 0.870000 + TP000100 + + + 202.457031 + + 1.010000 + TP000101 + + + 202.179688 + + 1.120000 + TP000102 + + + 201.121094 + + 1.000000 + TP000103 + + + 198.910156 + + 1.280000 + TP000104 + + + 197.457031 + + 1.590000 + TP000105 + + + 195.582031 + + 1.260000 + TP000106 + + + 194.722656 + + 1.150000 + TP000107 + + + 193.625000 + + 1.590000 + TP000108 + + + 192.992188 + + 1.450000 + TP000109 + + + 192.777344 + + 1.240000 + TP000110 + + + 192.101562 + + 1.400000 + TP000111 + + + 192.457031 + + 1.620000 + TP000112 + + + 191.949219 + + 1.550000 + TP000113 + + + 191.039062 + + 1.200000 + TP000114 + + + 190.707031 + + 1.180000 + TP000115 + + + 190.828125 + + 1.610000 + TP000116 + + + 191.242188 + + 1.670000 + TP000117 + + + 191.679688 + + 1.310000 + TP000118 + + + 190.683594 + + 1.210000 + TP000119 + + + 190.656250 + + 0.710000 + TP000120 + + + 189.980469 + + 1.430000 + TP000121 + + + 188.367188 + + 1.230000 + TP000122 + + + 185.644531 + + 1.120000 + TP000123 + + + 184.996094 + + 1.070000 + TP000124 + + + 184.613281 + + 1.170000 + TP000125 + + + 183.679688 + + 1.020000 + TP000126 + + + 181.527344 + + 1.550000 + TP000127 + + + 180.593750 + + 1.380000 + TP000128 + + + 179.183594 + + 1.230000 + TP000129 + + + 177.609375 + + 1.290000 + TP000130 + + + 177.128906 + + 1.320000 + TP000131 + + + 174.300781 + + 0.020000 + TP000132 + + + 174.621094 + + 0.270000 + TP000133 + + + 176.039062 + + 1.110000 + TP000134 + + + 176.054688 + + 0.860000 + TP000135 + + + 176.441406 + + 0.850000 + TP000136 + + + 176.875000 + + 1.030000 + TP000137 + + + 177.542969 + + 2.240000 + TP000138 + + + 177.410156 + + 1.810000 + TP000139 + + + 177.675781 + + 1.340000 + TP000140 + + + 177.941406 + + 1.640000 + TP000141 + + + 178.406250 + + 1.210000 + TP000142 + + + 179.007812 + + 1.070000 + TP000143 + + + 179.464844 + + 1.280000 + TP000144 + + + 179.914062 + + 0.480000 + TP000145 + + + 180.363281 + + 0.680000 + TP000146 + + + 180.832031 + + 1.160000 + TP000147 + + + 181.148438 + + 1.530000 + TP000148 + + + 181.679688 + + 1.140000 + TP000149 + + + 182.625000 + + 1.310000 + TP000150 + + + 183.437500 + + 1.540000 + TP000151 + + + 184.257812 + + 1.170000 + TP000152 + + + 185.039062 + + 1.420000 + TP000153 + + + 185.699219 + + 1.100000 + TP000154 + + + 186.730469 + + 1.060000 + TP000155 + + + 187.386719 + + 1.170000 + TP000156 + + + 188.183594 + + 1.340000 + TP000157 + + + 188.433594 + + 0.940000 + TP000158 + + + 188.148438 + + 1.340000 + TP000159 + + + 188.234375 + + 1.210000 + TP000160 + + + 188.054688 + + 1.220000 + TP000161 + + + 188.687500 + + 1.310000 + TP000162 + + + 189.085938 + + 0.960000 + TP000163 + + + 188.554688 + + 0.660000 + TP000164 + + + 188.226562 + + 1.370000 + TP000165 + + + 188.125000 + + 1.190000 + TP000166 + + + 188.894531 + + 1.510000 + TP000167 + + + 188.851562 + + 1.460000 + TP000168 + + + 188.054688 + + 0.930000 + TP000169 + + + 187.125000 + + 1.490000 + TP000170 + + + 187.558594 + + 1.470000 + TP000171 + + + 186.175781 + + 1.670000 + TP000172 + + + 185.824219 + + 1.760000 + TP000173 + + + 185.167969 + + 1.290000 + TP000174 + + + 184.914062 + + 0.550000 + TP000175 + + + 184.476562 + + 1.790000 + TP000176 + + + 183.523438 + + 0.620000 + TP000177 + + + 184.246094 + + 1.780000 + TP000178 + + + 185.695312 + + 0.960000 + TP000179 + + + 185.660156 + + 0.810000 + TP000180 + + + 185.226562 + + 1.880000 + TP000181 + + + 184.792969 + + 0.610000 + TP000182 + + + 184.562500 + + 1.430000 + TP000183 + + + 185.582031 + + 1.320000 + TP000184 + + + 186.546875 + + 1.130000 + TP000185 + + + 187.285156 + + 0.810000 + TP000186 + + + 188.800781 + + 1.070000 + TP000187 + + + 189.636719 + + 0.760000 + TP000188 + + + 189.312500 + + 0.990000 + TP000189 + + + 189.925781 + + 0.570000 + TP000190 + + + 190.718750 + + 0.970000 + TP000191 + + + 191.933594 + + 1.150000 + TP000192 + + + 192.109375 + + 1.780000 + TP000193 + + + 192.367188 + + 1.140000 + TP000194 + + + 192.429688 + + 1.190000 + TP000195 + + + 193.726562 + + 1.760000 + TP000196 + + + 194.648438 + + 2.530000 + TP000197 + + + 194.750000 + + 0.720000 + TP000198 + + + 193.324219 + + 1.540000 + TP000199 + + + 194.175781 + + 1.000000 + TP000200 + + + 193.988281 + + 1.390000 + TP000201 + + + 193.648438 + + 1.230000 + TP000202 + + + 192.742188 + + 1.710000 + TP000203 + + + 194.070312 + + 0.720000 + TP000204 + + + 194.656250 + + 1.640000 + TP000205 + + + 195.195312 + + 2.020000 + TP000206 + + + 193.769531 + + 1.770000 + TP000207 + + + 193.175781 + + 0.710000 + TP000208 + + + 191.835938 + + 1.110000 + TP000209 + + + 191.558594 + + 1.390000 + TP000210 + + + 191.109375 + + 1.400000 + TP000211 + + + 191.617188 + + 1.160000 + TP000212 + + + 189.960938 + + 1.510000 + TP000213 + + + 189.980469 + + 1.170000 + TP000214 + + + 189.671875 + + 0.560000 + TP000215 + + + 189.203125 + + 1.200000 + TP000216 + + + 189.335938 + + 0.520000 + TP000217 + + + 189.582031 + + 1.340000 + TP000218 + + + 191.035156 + + 0.660000 + TP000219 + + + 191.453125 + + 0.340000 + TP000220 + + + 192.769531 + + 1.660000 + TP000221 + + + 193.292969 + + 2.580000 + TP000222 + + + 192.671875 + + 0.450000 + TP000223 + + + 191.945312 + + 1.140000 + TP000224 + + + 190.515625 + + 0.960000 + TP000225 + + + 189.554688 + + 0.560000 + TP000226 + + + 189.660156 + + 1.800000 + TP000227 + + + 187.339844 + + 0.980000 + TP000228 + + + 187.546875 + + 1.710000 + TP000229 + + + 188.890625 + + 1.740000 + TP000230 + + + 191.398438 + + 1.690000 + TP000231 + + + 190.945312 + + 1.000000 + TP000232 + + + 189.742188 + + 0.610000 + TP000233 + + + 187.929688 + + 1.810000 + TP000234 + + + 187.878906 + + 1.200000 + TP000235 + + + 186.718750 + + 0.790000 + TP000236 + + + 187.597656 + + 0.680000 + TP000237 + + + 189.046875 + + 0.770000 + TP000238 + + + 190.152344 + + 1.540000 + TP000239 + + + 190.878906 + + 0.660000 + TP000240 + + + 190.566406 + + 1.000000 + TP000241 + + + 191.621094 + + 1.130000 + TP000242 + + + 192.265625 + + 1.000000 + TP000243 + + + 193.476562 + + 0.990000 + TP000244 + + + 195.695312 + + 1.870000 + TP000245 + + + 196.503906 + + 0.870000 + TP000246 + + + 198.761719 + + 0.970000 + TP000247 + + + 200.476562 + + 1.110000 + TP000248 + + + 200.789062 + + 1.480000 + TP000249 + + + 201.605469 + + 1.150000 + TP000250 + + + 202.371094 + + 1.110000 + TP000251 + + + 205.050781 + + 0.730000 + TP000252 + + + 206.890625 + + 0.940000 + TP000253 + + + 206.523438 + + 1.600000 + TP000254 + + + 207.726562 + + 0.560000 + TP000255 + + + 208.539062 + + 1.040000 + TP000256 + + + 209.121094 + + 1.440000 + TP000257 + + + 210.257812 + + 0.990000 + TP000258 + + + 211.867188 + + 1.010000 + TP000259 + + + 212.914062 + + 1.430000 + TP000260 + + + 213.640625 + + 0.730000 + TP000261 + + + 213.941406 + + 1.300000 + TP000262 + + + 213.867188 + + 1.100000 + TP000263 + + + 214.035156 + + 0.900000 + TP000264 + + + 214.761719 + + 0.890000 + TP000265 + + + 215.679688 + + 1.060000 + TP000266 + + + 217.429688 + + 1.300000 + TP000267 + + + 217.515625 + + 0.830000 + TP000268 + + + 217.582031 + + 1.030000 + TP000269 + + + 216.867188 + + 0.860000 + TP000270 + + + 216.320312 + + 1.270000 + TP000271 + + + 215.511719 + + 0.920000 + TP000272 + + + 215.851562 + + 1.250000 + TP000273 + + + 216.394531 + + 0.540000 + TP000274 + + + 215.929688 + + 1.090000 + TP000275 + + + 215.132812 + + 1.480000 + TP000276 + + + 214.406250 + + 0.730000 + TP000277 + + + 212.308594 + + 0.510000 + TP000278 + + + 212.105469 + + 0.140000 + TP000279 + + + 211.597656 + + 0.820000 + TP000280 + + + 212.304688 + + 1.100000 + TP000281 + + + 212.269531 + + 0.470000 + TP000282 + + + 211.449219 + + 0.030000 + TP000283 + + + 211.539062 + + 0.810000 + TP000284 + + + 210.757812 + + 1.030000 + TP000285 + + + 208.820312 + + 1.070000 + TP000286 + + + 208.453125 + + 1.240000 + TP000287 + + + 206.746094 + + 0.940000 + TP000288 + + + 205.363281 + + 1.090000 + TP000289 + + + 204.515625 + + 0.770000 + TP000290 + + + 203.894531 + + 1.310000 + TP000291 + + + 201.394531 + + 1.120000 + TP000292 + + + 202.027344 + + 1.150000 + TP000293 + + + 201.808594 + + 1.250000 + TP000294 + + + 202.781250 + + 1.510000 + TP000295 + + + 203.046875 + + 1.420000 + TP000296 + + + 203.050781 + + 1.310000 + TP000297 + + + 203.628906 + + 1.260000 + TP000298 + + + 204.957031 + + 0.790000 + TP000299 + + + 203.996094 + + 0.960000 + TP000300 + + + 204.667969 + + 1.080000 + TP000301 + + + 204.714844 + + 1.290000 + TP000302 + + + 204.593750 + + 1.400000 + TP000303 + + + 204.968750 + + 0.780000 + TP000304 + + + 205.468750 + + 0.550000 + TP000305 + + + 206.269531 + + 0.900000 + TP000306 + + + 205.746094 + + 1.490000 + TP000307 + + + 205.582031 + + 0.270000 + TP000308 + + + 205.625000 + + 1.770000 + TP000309 + + + 204.714844 + + 0.850000 + TP000310 + + + 205.199219 + + 0.760000 + TP000311 + + + 204.644531 + + 1.400000 + TP000312 + + + 204.859375 + + 0.790000 + TP000313 + + + 204.812500 + + 1.720000 + TP000314 + + + 204.515625 + + 1.320000 + TP000315 + + + 203.531250 + + 1.090000 + TP000316 + + + 203.066406 + + 1.410000 + TP000317 + + + 203.335938 + + 1.210000 + TP000318 + + + 203.843750 + + 0.860000 + TP000319 + + + 204.214844 + + 0.730000 + TP000320 + + + 203.453125 + + 1.210000 + TP000321 + + + 203.125000 + + 0.820000 + TP000322 + + + 202.128906 + + 1.080000 + TP000323 + + + 201.218750 + + 0.910000 + TP000324 + + + 200.515625 + + 1.100000 + TP000325 + + + 200.562500 + + 0.450000 + TP000326 + + + 200.648438 + + 0.190000 + TP000327 + + + 200.167969 + + 0.110000 + TP000328 + + + 199.917969 + + 0.180000 + TP000329 + + + 199.812500 + + 0.330000 + TP000330 + + + 199.746094 + + 0.150000 + TP000331 + + + 199.656250 + + 0.220000 + TP000332 + + + 199.695312 + + 0.090000 + TP000333 + + + 199.875000 + + 0.250000 + TP000334 + + + 200.375000 + + 0.080000 + TP000335 + + + 200.378906 + + 0.090000 + TP000336 + + + 200.347656 + + 0.020000 + TP000337 + + + 200.195312 + + 0.450000 + TP000338 + + + 200.800781 + + 0.860000 + TP000339 + + + 200.503906 + + 1.150000 + TP000340 + + + 200.628906 + + 1.080000 + TP000341 + + + 200.367188 + + 1.060000 + TP000342 + + + 200.500000 + + 0.380000 + TP000343 + + + 200.531250 + + 1.110000 + TP000344 + + + 200.570312 + + 0.200000 + TP000345 + + + 200.765625 + + 0.150000 + TP000346 + + + 200.750000 + + 0.150000 + TP000347 + + + 200.781250 + + 0.230000 + TP000348 + + + 201.031250 + + 0.290000 + TP000349 + + + 201.113281 + + 0.300000 + TP000350 + + + 201.132812 + + 0.190000 + TP000351 + + + 201.125000 + + 0.150000 + TP000352 + + + 201.121094 + + 0.210000 + TP000353 + + + 201.144531 + + 0.280000 + TP000354 + + + 201.148438 + + 0.210000 + TP000355 + + + 201.179688 + + 0.880000 + TP000356 + + + 201.613281 + + 0.310000 + TP000357 + + + 201.851562 + + 0.580000 + TP000358 + + + 202.074219 + + 0.360000 + TP000359 + + + 202.335938 + + 0.340000 + TP000360 + + + 202.460938 + + 0.290000 + TP000361 + + + 202.484375 + + 0.440000 + TP000362 + + + 202.441406 + + 0.500000 + TP000363 + + + 202.394531 + + 0.570000 + TP000364 + + + 202.300781 + + 0.610000 + TP000365 + + + 202.214844 + + 0.740000 + TP000366 + + + 202.152344 + + 0.660000 + TP000367 + + + 202.105469 + + 0.700000 + TP000368 + + + 202.070312 + + 0.400000 + TP000369 + + + 202.027344 + + 0.660000 + TP000370 + + + 202.042969 + + 0.400000 + TP000371 + + + 202.156250 + + 0.160000 + TP000372 + + + 202.386719 + + 0.200000 + TP000373 + + + 202.378906 + + 0.010000 + TP000374 + + + 202.382812 + + 0.470000 + TP000375 + + + 202.457031 + + 0.810000 + TP000376 + + + 203.117188 + + 0.210000 + TP000377 + + + 206.406250 + + 0.980000 + TP000378 + + + 165.863281 + + 0.140000 + TP000379 + + + 213.636719 + + 0.220000 + TP000380 + + + 213.488281 + + 0.170000 + TP000381 + + + 214.773438 + + 0.130000 + TP000382 + + + 212.136719 + + 0.070000 + TP000383 + + + 212.089844 + + 0.260000 + TP000384 + + + 212.082031 + + 0.370000 + TP000385 + + + 211.339844 + + 0.130000 + TP000386 + + + 210.683594 + + 0.090000 + TP000387 + + + 216.351562 + + 0.070000 + TP000388 + + + 213.289062 + + 0.060000 + TP000389 + + + 214.312500 + + 0.080000 + TP000390 + + + 218.730469 + + 0.320000 + TP000391 + + + 212.921875 + + 0.060000 + TP000392 + + + 214.746094 + + 0.030000 + TP000393 + + + 212.683594 + + 0.050000 + TP000394 + + + 212.597656 + + 0.110000 + TP000395 + + + + diff --git a/gpsbabel/testo b/gpsbabel/testo index 81a64f7d4..939bac3bc 100755 --- a/gpsbabel/testo +++ b/gpsbabel/testo @@ -1349,6 +1349,13 @@ compare ${TMPDIR}/mtk_logger_m241.gpx ${REFERENCE}/track/mtk_logger_m241.gpx ## CSV compare needs to be done with '-w' - ignore whitespace. compare ${TMPDIR}/mtk_logger_m241.csv ${REFERENCE}/track/mtk_logger_m241.csv +# +# MTK logger tests (Holux GPsport-245 - using m241 module) +# +rm -f ${TMPDIR}/mtk_logger_gp245.* +gpsbabel -t -w -i m241-bin -f ${REFERENCE}/track/mtk_logger_gp245.bin -o gpx -F ${TMPDIR}/mtk_logger_gp245.gpx +compare ${TMPDIR}/mtk_logger_gp245.gpx ${REFERENCE}/track/mtk_logger_gp245.gpx + # # MagicMaps IK3D Project File .ikt test # diff --git a/gpsbabel/xmldoc/formats/m241-bin.xml b/gpsbabel/xmldoc/formats/m241-bin.xml index 4468e8c81..1a448d56b 100644 --- a/gpsbabel/xmldoc/formats/m241-bin.xml +++ b/gpsbabel/xmldoc/formats/m241-bin.xml @@ -7,6 +7,12 @@ bt747 Waypoint storage is possible only if "recording reason" (RCR) is enabled in the settings. + + Holux GPSport 245 is a datalogger with display suitable for cycling, walking and running. + It can store ~200k trackpoints with limited data. The m241 and m241-bin format is + able to automatically detect GPSport 245 data and handle the differences from Holux M-241 devices. + Note: GP245 does not log any quality of the position. + Use the m241 format to connect with the unit serially and m241-bin to read files saved by the device. diff --git a/gpsbabel/xmldoc/formats/m241.xml b/gpsbabel/xmldoc/formats/m241.xml index 4468e8c81..0d010e767 100644 --- a/gpsbabel/xmldoc/formats/m241.xml +++ b/gpsbabel/xmldoc/formats/m241.xml @@ -7,6 +7,12 @@ bt747 Waypoint storage is possible only if "recording reason" (RCR) is enabled in the settings. + + Holux GPSport 245 is a datalogger with display suitable for cycling, walking and running. + It can store ~200k trackpoints with limited data. The m241 and m241-bin format is + able to automatically detect GPSport 245 data and handle the differences from Holux 241 devices. + Note: GP245 does not log any quality of the position. + Use the m241 format to connect with the unit serially and m241-bin to read files saved by the device. -- 2.30.2